package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;
import com.ruoyi.system.domain.cgRecord;
import org.apache.ibatis.annotations.Param;

/**
 * 充电枪记录Mapper接口
 * 
 * @author ruoyi
 * @date 2025-06-30
 */
public interface cgRecordMapper 
{
    /**
     * 查询充电枪记录
     * 
     * @param recordId 充电枪记录主键
     * @return 充电枪记录
     */
    public cgRecord selectcgRecordByRecordId(Integer recordId);

    /**
     * 查询充电枪记录列表
     * 
     * @param cgRecord 充电枪记录
     * @return 充电枪记录集合
     */
    public List<cgRecord> selectcgRecordList(cgRecord cgRecord);

    /**
     * 新增充电枪记录
     * 
     * @param cgRecord 充电枪记录
     * @return 结果
     */
    public int insertcgRecord(cgRecord cgRecord);

    /**
     * 修改充电枪记录
     * 
     * @param cgRecord 充电枪记录
     * @return 结果
     */
    public int updatecgRecord(cgRecord cgRecord);

    /**
     * 删除充电枪记录
     * 
     * @param recordId 充电枪记录主键
     * @return 结果
     */
    public int deletecgRecordByRecordId(Integer recordId);

    /**
     * 批量删除充电枪记录
     * 
     * @param recordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletecgRecordByRecordIds(Integer[] recordIds);

    // 查询所有充电站id和名称（下拉用）
    List<Map<String, Object>> selectAllStationSimple();

    // 充电枪分析总览
    Map<String, Object> selectGunAnalysisByStationId(Integer stationId);

    // 充电枪分析-按天统计
    List<Map<String, Object>> selectDailyGunAnalysis(Integer stationId);

    // 查询某充电站下充电枪总数
    int selectGunTotalCountByStationId(Integer stationId);

    Map<String, Object> selectGunAnalysisByStationIdAndMonth(@Param("stationId") Integer stationId, @Param("month") String month);
List<Map<String, Object>> selectDailyGunAnalysisByMonth(@Param("stationId") Integer stationId, @Param("month") String month);
}
